Versi 1
| Field | Isi |
|---|---|
| Dokumen ID | VBS-LAP-020 |
| Deskripsi | Laporan piutang customer dalam lima mode: piutang rinci, piutang per customer, kartu piutang, piutang jatuh tempo, dan umur piutang, lengkap dengan cetak dan ekspor |
| Nomor Revisi | 1 |
| Tanggal | 2026-10-04 |
| Keterangan | Dokumentasi baseline dari dokumentasi fitur demo dan kode FE |
1. Ringkasan
a. In scope
- User membuka Laporan Piutang dari daftar Laporan Penjualan.
- User memilih mode laporan: piutang rinci, piutang customer, kartu piutang, piutang jatuh tempo, atau umur piutang.
- User mengisi tanggal posisi piutang (atau periode bulan untuk kartu piutang), memilih customer, dan mengurutkan hasil.
- User memakai filter tambahan: rentang jatuh tempo dan nominal sisa piutang (lebih dari, kurang dari, sama dengan).
- User melihat sisa piutang per invoice, total per customer, mutasi masuk keluar piutang per customer, piutang jatuh tempo, dan pengelompokan umur piutang.
- User melihat rincian pembayaran sebuah piutang jatuh tempo.
- User mencetak atau mengunduh PDF dan mengekspor Excel sesuai hak akses.
b. Catatan
c. Kesimpulan
- [FE] -
- [BE] -
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | Sistem menampilkan sisa piutang per invoice per tanggal posisi beserta total sisa piutang brand |
| FR-02 | Sistem menampilkan total sisa piutang per customer beserta invoice di dalamnya |
| FR-03 | Sistem menampilkan kartu piutang: saldo dan mutasi masuk keluar piutang per customer dalam periode bulan |
| FR-04 | Sistem menampilkan piutang yang jatuh tempo sampai tanggal tertentu beserta barang dan pembayarannya |
| FR-05 | Sistem menampilkan umur piutang per customer |
| FR-06 | User dapat memfilter customer, rentang jatuh tempo, dan nominal sisa, serta mengurutkan hasil |
| FR-07 | User dengan izin print dapat mencetak atau mengunduh PDF laporan |
| FR-08 | User dengan izin Excel dapat mengekspor laporan ke Excel |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Melihat piutang rinci per tanggal |
| UC-02 | Melihat piutang per customer |
| UC-03 | Melihat kartu piutang customer |
| UC-04 | Melihat piutang jatuh tempo dan pembayarannya |
| UC-05 | Melihat umur piutang |
| UC-06 | Memfilter piutang berdasarkan jatuh tempo dan nominal sisa |
| UC-07 | Mencetak atau mengekspor laporan piutang |
4. Use Case Scenario
UC-01 : Melihat piutang rinci per tanggal
| Aktor | User akuntansi / penagihan |
| Deskripsi | User melihat seluruh invoice piutang yang belum lunas pada tanggal posisi tertentu |
| Prekondisi | User memiliki izin akses #lap-piutang |
| Alur utama | 1. User membuka Laporan Penjualan lalu Laporan Piutang. 2. User memilih mode piutang rinci dan tanggal "piutang belum lunas per tanggal". 3. User memilih urutan (nama, tanggal, nomor invoice, sisa piutang, atau tanggal jatuh tempo). 4. User menekan tombol lihat laporan. 5. Sistem menampilkan invoice piutang beserta sisa piutangnya dan total sisa piutang brand. |
| Alur negatif | - Jika form tidak valid, muncul alert "Form Harus Diisi!". - Jika periode tidak lengkap, muncul alert "Periode Tidak Boleh Kosong". - Jika tidak ada data, tabel kosong. |
| Bisnis rule | - Hanya invoice piutang non draft dan tercetak yang dihitung. - Default hanya piutang dengan sisa lebih dari 0. - Jika tanggal kosong, posisi memakai hari ini. - Data dimuat bertahap per halaman saat user menggulir. |
| Postkondisi | Daftar piutang rinci tampil |
| Trigger | User menekan tombol lihat laporan |
| Kode FR | FR-01 |
UC-02 : Melihat piutang per customer
| Aktor | User akuntansi / penagihan |
| Deskripsi | User melihat total sisa piutang dikelompokkan per customer |
| Prekondisi | User memiliki izin akses #lap-piutang |
| Alur utama | 1. User memilih mode piutang customer dan tanggal posisi. 2. User dapat memilih satu atau beberapa customer. 3. User menekan tombol lihat laporan. 4. Sistem menampilkan total piutang per customer. 5. User membuka baris customer untuk melihat invoice di dalamnya. |
| Alur negatif | - Jika form tidak valid, muncul alert "Form Harus Diisi!". - Jika data total piutang gagal dimuat, tabel dikosongkan. |
| Bisnis rule | - Sistem mengambil total piutang per customer terlebih dahulu, lalu mengambil rincian invoice hanya untuk customer di halaman tersebut. - Satu halaman total memuat hingga 500 customer. |
| Postkondisi | Piutang per customer tampil |
| Trigger | User menekan tombol lihat laporan |
| Kode FR | FR-02 |
UC-03 : Melihat kartu piutang customer
| Aktor | User akuntansi / penagihan |
| Deskripsi | User melihat mutasi masuk dan keluar piutang customer dalam rentang bulan |
| Prekondisi | User memiliki izin akses #lap-piutang |
| Alur utama | 1. User memilih mode kartu piutang. 2. User memilih periode bulan awal sampai akhir "periode masuk keluar piutang". 3. User dapat memilih customer. 4. User menekan tombol lihat laporan. 5. Sistem menampilkan saldo awal, mutasi, dan saldo akhir piutang per customer. |
| Alur negatif | - Jika rentang periode tidak lengkap, muncul alert "Periode Tidak Boleh Kosong". |
| Bisnis rule | - Default periode adalah awal sampai akhir bulan berjalan saat mode dipilih. - Pilihan urutan tidak tersedia pada mode ini. |
| Postkondisi | Kartu piutang tampil |
| Trigger | User menekan tombol lihat laporan |
| Kode FR | FR-03 |
UC-04 : Melihat piutang jatuh tempo dan pembayarannya
| Aktor | User akuntansi / penagihan |
| Deskripsi | User melihat invoice piutang yang sudah jatuh tempo per tanggal tertentu dan riwayat pembayarannya |
| Prekondisi | User memiliki izin akses #lap-piutang |
| Alur utama | 1. User memilih mode piutang jatuh tempo dan tanggal "piutang jatuh tempo per tanggal". 2. User dapat memilih customer. 3. User menekan tombol lihat laporan. 4. Sistem menampilkan invoice jatuh tempo beserta customer, barang, dan sisa piutang. 5. User mengklik nilai pembayaran untuk membuka rincian metode pembayaran piutang. |
| Alur negatif | - Jika form tidak valid, muncul alert "Form Harus Diisi!". - Jika invoice belum memiliki pembayaran, popup rincian kosong. |
| Bisnis rule | - Pilihan urutan tidak tersedia pada mode ini. - Tombol ekspor Excel tidak ditampilkan pada mode piutang jatuh tempo. |
| Postkondisi | Piutang jatuh tempo dan pembayarannya tampil |
| Trigger | User menekan tombol lihat laporan |
| Kode FR | FR-04 |
UC-05 : Melihat umur piutang
| Aktor | User akuntansi / penagihan |
| Deskripsi | User melihat sebaran umur piutang per customer pada tanggal posisi |
| Prekondisi | User memiliki izin akses #lap-piutang |
| Alur utama | 1. User memilih mode umur piutang dan tanggal posisi. 2. User menekan tombol lihat laporan. 3. Sistem menampilkan sisa piutang per customer yang dikelompokkan berdasarkan umur sejak jatuh tempo. |
| Alur negatif | - Jika form tidak valid, muncul alert "Form Harus Diisi!". - Jika data gagal dimuat, tabel dikosongkan. |
| Bisnis rule | - Sumber data sama dengan piutang customer: total per customer lalu rincian invoice per customer. |
| Postkondisi | Umur piutang tampil |
| Trigger | User menekan tombol lihat laporan |
| Kode FR | FR-05 |
UC-06 : Memfilter piutang berdasarkan jatuh tempo dan nominal sisa
| Aktor | User akuntansi / penagihan |
| Deskripsi | User mempersempit laporan dengan rentang jatuh tempo dan batas nominal sisa |
| Prekondisi | Halaman Laporan Piutang terbuka |
| Alur utama | 1. User membuka popup filter. 2. User mengisi rentang tanggal jatuh tempo dan nominal sisa lebih dari, kurang dari, atau sama dengan. 3. User menerapkan filter dan menekan lihat laporan. 4. Sistem menampilkan piutang yang memenuhi syarat. |
| Alur negatif | - Jika rentang jatuh tempo tidak lengkap, muncul alert "Periode Tidak Boleh Kosong". - Tombol reset mengembalikan semua filter dan mengosongkan tabel. |
| Bisnis rule | - Lebih dari dan kurang dari diisi bersamaan menjadi filter antara. - Sama dengan hanya dipakai bila lebih dari dan kurang dari kosong. - Pada kartu piutang, rentang jatuh tempo dipakai sebagai batas tempo, sedangkan pada mode lain dipakai sebagai rentang tanggal. |
| Postkondisi | Laporan terfilter tampil |
| Trigger | User menerapkan filter tambahan |
| Kode FR | FR-06 |
UC-07 : Mencetak atau mengekspor laporan piutang
| Aktor | User dengan izin print atau Excel laporan piutang |
| Deskripsi | User mencetak, mengunduh PDF, atau mengekspor Excel laporan piutang yang sedang tampil |
| Prekondisi | Laporan sudah tampil |
| Alur utama | 1. User memilih print, download PDF, atau Excel. 2. Jika data belum termuat semua, sistem memuat seluruh halaman terlebih dahulu. 3. Sistem mengambil nama perusahaan dari kop surat. 4. Sistem membuat dokumen cetak atau file Excel sesuai mode. |
| Alur negatif | - Jika form belum valid, muncul alert "Form Harus Diisi!". - Jika data kosong, muncul alert "Data yang ingin ada print tidak ditemukan". |
| Bisnis rule | - Print dan download butuh izin print, Excel butuh izin excel pada #lap-piutang.- Ekspor Excel piutang customer menyertakan rincian pembayaran tiap invoice. |
| Postkondisi | Dokumen tercetak atau file terunduh |
| Trigger | User memilih aksi print, download, atau Excel |
| Kode FR | FR-07 FR-08 |
5. Data Flow Diagram
DFD-01 — Alur data laporan piutang
6. Sequence Diagram
SD-01 — UC-01 : Melihat piutang rinci per tanggal
SD-02 — UC-02 : Melihat piutang per customer
SD-03 — UC-03 : Melihat kartu piutang customer
SD-04 — UC-04 : Melihat piutang jatuh tempo dan pembayarannya
SD-05 — UC-05 : Melihat umur piutang
SD-06 — UC-06 : Memfilter piutang berdasarkan jatuh tempo dan nominal sisa
SD-07 — UC-07 : Mencetak atau mengekspor laporan piutang
7. Table Schema
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
POST /invoice-piutang/total-piutang | existing | - |
POST /invoice-piutang/sisa-piutang-by-invoice | existing | - |
GET /invoice-piutang/saldo-bulk | existing | - |
GET /invoice-piutang/kartu-piutang | existing | - |
GET /invoice-piutang | existing | - |
GET /pembayaran-piutang | existing | - |
POST /pembayaran-piutang/get-invoice | existing | - |
GET /metode-pembayaran-piutang-tempo | existing | - |
GET /metode-pembayaran | existing | - |
POST /sku/get-bulk-sku | existing | - |
GET /person | existing | - |
GET /kop-surat | existing | - |